home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
PC World Komputer 2010 April
/
PCWorld0410.iso
/
pluginy Firefox
/
60750
/
60750.xpi
/
chrome
/
chromeFiles
/
content
/
bindings
/
btsearchbar3.xml
< prev
next >
Wrap
Text File
|
2010-01-20
|
4KB
|
110 lines
<bindings
xmlns="http://www.mozilla.org/xbl"
xmlns:xul="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
xmlns:xbl="http://www.mozilla.org/xbl">
<binding id="btsearchbar">
<resources>
<stylesheet src="btsearchtextbox.css"/>
</resources>
<content>
<xul:textbox class="bt_searchbar_textbox3"
anonid="textbox"
type="autocomplete">
</xul:textbox>
<xul:button class="bt_searchbar_button"
anonid="button">
</xul:button>
</content>
<handlers>
<handler event="command"><![CDATA[
switch (event.originalTarget.getAttribute("anonid")) {
case "button":
this.handleSearchCommand(event);
break;
}
]]>
</handler>
</handlers>
<implementation>
<constructor>
<![CDATA[
if (this.hasAttribute('brand')) {
this.observerService = Components.classes["@mozilla.org/observer-service;1"]
.getService(Components.interfaces.nsIObserverService)
this.brandObject = BrandThunder.clients[this.getAttribute('brand')];
}
]]>
</constructor>
<field name="observerService"/>
<method name="handleSearchCommand">
<parameter name="event"/>
<parameter name="text"/>
<body><![CDATA[
if (!text) {
text = document.getAnonymousElementByAttribute(this, "anonid", "textbox").value;
}
var searchSvc = Components.classes["@mozilla.org/browser/search-service;1"]
.getService(Components.interfaces.nsIBrowserSearchService);
var engineToUse;
var additionalChars = "";
var defaultEngine = searchSvc.getEngineByName(this.brandObject.defaultSearchEngine.replace(" - BT",""));
if (this.hasAttribute("engine")) {
engineToUse = searchSvc.getEngineByName(this.getAttribute("engine"));
}
if (!engineToUse) {
if (searchSvc.currentEngine.description.match(" - BT")) {
engineToUse = searchSvc.currentEngine;
} else if (defaultEngine) {
engineToUse = defaultEngine;
} else {
/* Try to find another BT engine to use */
var bingEngine = searchSvc.getEngineByName("Bing");
var askEngine = searchSvc.getEngineByName("Ask");
var yahooEngine = searchSvc.getEngineByName("Yahoo");
if (bingEngine && bingEngine.description.match(" - BT")) {
engineToUse = bingEngine;
} else if (askEngine && askEngine.description.match(" - BT")) {
engineToUse = askEngine;
} else if (yahooEngine && yahooEngine.description.match(" - BT")) {
engineToUse = yahooEngine;
} else {
engineToUse = searchSvc.currentEngine;
}
}
}
if (engineToUse.description == "Yahoo! - BT") {
additionalChars = "L";
}
if (this.hasAttribute("version")) {
if (this.observerService) {
var subject = {};
subject.wrappedJSObject = this.brandObject;
this.observerService.notifyObservers(subject, "brandthunder", "bt-" + this.brandObject.shortName + "-searchbartest-" + this.getAttribute("version"));
}
}
var submission = engineToUse.getSubmission(text, null);
openUILinkIn(submission.uri.spec + additionalChars, "tab", null, submission.postData);
]]></body>
</method>
</implementation>
</binding>
<binding id="bt-searchbar-textbox"
extends="chrome://global/content/bindings/autocomplete.xml#autocomplete">
<implementation>
<method name="onTextEntered">
<parameter name="event"/>
<body><![CDATA[
document.getBindingParent(this).handleSearchCommand(event, this.value);
]]></body>
</method>
</implementation>
</binding>
</bindings>